package com.atguigu.lease.common.handler;

import com.atguigu.lease.common.result.Result;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * @author LOGIN
 * @title GlobalExceptionHandler
 * @create 2025/6/30 14:26
 * @description
 */
//@RestControllerAdvic标注的类是异常处理器，处理异常返回的结果转为JSON字符串
    //可以处理hander方法抛出的异常
    //@ControllerAdvice 标注的也是异常处理器 处理异常返回的结果为 视图对象 要进行转发！一般不用！！！
@RestControllerAdvice
@Slf4j
public class GlobalExceptionHandler {
    //最大的异常处理器
    //该注解标注的方法 可以处理 controller 接口抛出的value 值声明的异常，由异常处理器代替接口返回结果
    @ExceptionHandler(value = Exception.class)
    public Result exception(Exception e){
        //打印异常的堆栈日志
        log.error(ExceptionUtils.getStackTrace(e));
        return Result.build(null,201,e.getMessage(),false);
    }
}
